<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 思考如何将list中的数据转化为最终输出的结果？？？
        const list = [
            {
                correctionTime: "2018-11-30",
                departmentName: "总裁办",
                formOfEmployment: 1,
                id: "604f764971f93f3ac8f365c2",
                mobile: "13800000002",
                password: "e10adc3949ba59abbe56e057f20f883e",
                staffPhoto: "http://q6cu3t6jv.bkt.clouddn.com/1063705989926227968?t=1616204161907",
                timeOfEntry: "2018-11-02",
                username: "管理员",
                workNumber: "9002",
            },
            {
                correctionTime: "2018-11-20",
                departmentName: "市场部",
                formOfEmployment: 1,
                id: "604f764971f93f3ac8f365c3",
                mobile: "13800000003",
                password: "e10adc3949ba59abbe56e057f20f883e",
                staffPhoto: "http://q6cu3t6jv.bkt.clouddn.com/1063705989926227968?t=1616204161907",
                timeOfEntry: "2018-11-04",
                username: "孙财",
                workNumber: "111",
            }
        ]
        // 导出excel 格式转换数据
        function dataFormt(list) {

            // Object.values(item)  ["2018-11-20"]
            // 1. 根据数据对象的健根据映射关系，得到一个中文的健，放到一个数组中  ---header ['编号', '密码']
            // 2. 将每一个对象的值，存到一个数组中，所有的结果放入到一个大的数组中--data  [["2018-11-30", "总裁办"],[]]
            const map = {
                'id': '编号',
                'password': '密码',
                'mobile': '手机号',
                'username': '姓名',
                'timeOfEntry': '入职日期',
                'formOfEmployment': '聘用形式',
                'correctionTime': '转正日期',
                'workNumber': '工号',
                'departmentName': '部门',
                'staffPhoto': '头像地址'
            }
            // headers = ['转正日期', '部门', '聘用形式', '编号', '手机号', '密码', '头像地址', '入职日期', '姓名', '工号']
            //1. 获取表头
            const one = list[0]  //获取的是对象
            let headers = []
            if (one) {
                const enkeys = Object.keys(one) //放入所有英文的键(属性)  返回一个数组
                // console.log('  Object.keys(one)是', Object.keys(one))
                headers = enkeys.map(enky => {
                    // console.log('enky是', enky)  //获取每一个英文
                    return map[enky]
                    //console.log(' map[enky]是', map[enky])  //取到 map 里面的 每个属性的值
                })
                //console.log('headers是?', headers)  //获得表头['转正日期', '部门', '聘用形式', '编号', '手机号', '密码', '头像地址', '入职日期', '姓名', '工号']
            }
            //2. 将每一个对象 对象中的值存到一个数组中,将每个数组存储到大数组中
            const data = list.map(item => {
                // console.log(item)  得到两个对象
                return Object.values(item)  //取出所有的属性的values(也就是属性的值) 放入一个数组

                //获得 ['2018-11-20', '市场部', 1, '604f764971f93f3ac8f365c3', '13800000003', 'e10adc3949ba59abbe56e057f20f883e', 'http://q6cu3t6jv.bkt.clouddn.com/1063705989926227968?t=1616204161907', '2018-11-04', '孙财', '111']
                // console.log(' Object.values(item)是?', Object.values(item)) 
            })
            // console.log('此时headers', headers, '此时data', data)
            return { headers, data }
        }
        const { headers, data } = dataFormt(list)
        console.log('headers', headers, 'data', data)
    </script>

<body>

</body>

</html>